{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Scenarios In Depth\n",
    "\n",
    "Scenarios are the heart of each simulation. A scenario defines which simulation model to use, optionally points to a source model and has a name. \n",
    "It may override model constants and define execution strategies. \n",
    "\n",
    "## Understanding The Scenario Definition Format\n",
    "\n",
    "The latter change constants in different steps of the simulation. See the \"strategy simulation\" section for details.\n",
    "You write scenarios in [JSON format](http://www.json.org). The default location to store scenarios is the ``scenarios`` subfolder of your current working directory, you can change this value in the config file. \n",
    "\n",
    "We group simulation scenarios by \"scenario Managers\". One scenario manager encapsulates one simulation model and has a name. Scenarios run this simulation model and modify constants.\n",
    "One JSON file may contain more than one scenario manager. A simple example with one scenario manager will look like this:\n",
    "\n",
    "```\n",
    "{  \n",
    "    \"smSimpleProjectManagement\":{\n",
    "    \"source\":\"simulation_models/sd_simple_project.itmx\",\n",
    "    \"model\":\"simulation_models/sd_simple_project\",\n",
    "    \"base_constants\": {\n",
    "          \"deadline\": 100,\n",
    "          \"effortPerTask\": 1,\n",
    "          \"initialOpenTasks\": 80,\n",
    "          \"initialStaff\": 1\n",
    "    },\n",
    "    \"base_points\": {\n",
    "        \"productivity\" : [\n",
    "        [0,0.4],\n",
    "        [0.25,0.444],\n",
    "        [0.5,0.506],\n",
    "        [0.75,0.594],\n",
    "        [1,1],\n",
    "        [1.25,1.119],\n",
    "        [1.5,1.1625],\n",
    "        [1.75,1.2125],\n",
    "        [2,1.2375],\n",
    "        [2.25,1.245],\n",
    "        [2.5,1.25]\n",
    "        ]\n",
    "    },\n",
    "    \"scenarios\": {\n",
    "      \"base\": {\n",
    "      },\n",
    "      \"scenario100\": {\n",
    "        \"constants\": {\n",
    "          \"initialOpenTasks\": 100\n",
    "        }\n",
    "      },\n",
    "      \"scenario80\": {\n",
    "        \"constants\": {\n",
    "        }\n",
    "      },\n",
    "      \"scenario120\": {\n",
    "        \"constants\": {\n",
    "          \"initialOpenTasks\": 120\n",
    "        }\n",
    "        \n",
    "      }\n",
    "    }\n",
    " }\n",
    "}\n",
    "```\n",
    "We start with the name of the scenario manager's name under which we all its scenarios.\n",
    "If you use the same name for a scenario manager in another file, this will be detected and the scenario will be added to the scenario manager. \n",
    "The scenario manager stores the model (source file and python file) as well as all scenarios that belong to it. \n",
    "The ``model`` parameter contains the (relative) path to the (python) simulation model. If using a relative path, keep in mind that ``BPTK_Py`` looks for the file from your current working directory, i.e. the path of your script or jupyter notebook. \n",
    "\n",
    "Then the key ``base_constants`` may follow. It defines the initial state for all models, regardless the state in the model source file. \n",
    "Here you can set all constants to a desired state. \n",
    "Each scenario stores the same values for the given constants. For example, in this example we set \"initialOpenTasks\" to 80.\n",
    "In this case, define ``base_constants`` for the scenario manager in exactly one file, not in multiple. \n",
    "In case the base constants stretch over multiple files, ``bptk_py`` attempts to merge them and data loss may occur due to duplicate values for the same constants.\n",
    "For defining an initial state of the graphical functions we employ ``base_points``. The schema is the same: define the points that are valid for all scenarios unless the ones that override them.\n",
    "\n",
    "The actual scenarios follow after the ``scenarios`` tag. If you define scenarios for one scenario manager over multiple files, this is O.K. and increases readability for the user.\n",
    "For each scenario, you have to supply a unique name as well. JSON does not support integer keys. \n",
    "The ``constants`` list stores the overrides constants. \n",
    "The constants override certain base constants given before. \n",
    "The scenario \"base\" sets \"initialOpenTasks\" to 100. This value is only valid for this specific scenario. \n",
    "The other values such as \"deadline\" stay the same as the base constants, as there is no overrid. \"scenario80\" does not override any constants and hence use all base constants. \n",
    "You may either define numerical values such as ``0.5`` or use strings to define expressions such as ``\"5/10\"``which will be evaluated to ``0.5`` by the framework.\n",
    "\n",
    "You should consider using the ``source`` field in the scenario manager tag. It specifies the (relative) path to the original model file of 3rd party applications. \n",
    "For now, the framework supports automatic conversion of .itmx/.stmx files from Stella Architect. \n",
    "For each source file, a file monitor will run in background to check for changes in the source model. \n",
    "The file monitor will automatically update the python model file whenever a change to the source model is detected. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Creating Scenarios During Runtime\n",
    "\n",
    "It is possible to add scenarios during runtime. For convenience, here is some example code you may use as a template to generate your own scenarios during runtime. If you define multiple scenarios for the same ``scenario_manager``, this is no problem. \n",
    "\n",
    "First define the details for the scenario manager and then set up the name of the scenario, the strategy and the constants. The strategy may as well be one of the complex ones as described above. But be careful to define everything correctly. We plan to develop a tool to help you create scenarios a little easier."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "import BPTK_Py\n",
    "bptk = BPTK_Py.bptk()\n",
    "\n",
    "scenario_manager={\n",
    "    \"smSimpleProject_temp\":\n",
    "    {\n",
    "        \"source\": \"simulation_models/sd_simple_project.itmx\",\n",
    "        \"model\": \"simulation_models/sd_simple_project\"\n",
    "    }\n",
    "}\n",
    "scenario_name = \"scenario160\"\n",
    "\n",
    "\n",
    "constants = {\n",
    "            \"deadline\" : 160,\n",
    "            \"effortPerTask\" : 0.1\n",
    "        }\n",
    "\n",
    "\n",
    "scenario_dictionary ={\n",
    "                 scenario_name:{\n",
    "                     \"constants\" : constants\n",
    "                 } \n",
    "             } \n",
    "            \n",
    "\n",
    "bptk.register_scenario_manager(scenario_manager)\n",
    "bptk.register_scenarios(scenario_manager=\"smSimpleProject_temp\",scenarios=scenario_dictionary)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "*** smSimpleProject_temp ***\n",
      "\t scenario160\n"
     ]
    }
   ],
   "source": [
    "bptk.list_scenarios(scenario_managers=[\"smSimpleProject_temp\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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7bW5zW1us9xlMBC3ve1tc+211y6oD0EVAAAAMC833nhjtt3WrEJ0tt1229x4440L6kNQBQAAAMybU/6YsBjvBUEVAAAAAIMgqAIAAACYg5NOOilVlYsvvniz77uqcsIJJ8xYy7HHHpt99913s9e2GARVAAAAAAyCGc8AAAAAVpA3vOEN2bBhw3KXMS+CKgAAAIAVZLvttlvuEuZtkKf+VdX+VfX6qvpqVd1UVWdNWn9IVbVpbh+d1PaeVfXJqlpXVZdV1YuqapvN+oQAAACALdI555yTBz/4wdlhhx2y995756UvfWlaa7do98lPfjKHHnpobnvb2+bWt751Dj744Jx99tmbtLnkkkvyjGc8IwceeGBufetbZ8cdd8zhhx+ez3/+87fo75prrslxxx2XXXfdNTvuuGMe+9jH5gc/+MFYNU81R1VV5Y//+I/z4Q9/OPe9732zww47ZP/998/JJ598i+1vuOGG/P3f/30OOOCA3OpWt8rtb3/7HHfccfnpT3861v4XYqgjqg5KckSSc5JMFQN+McmDJi3bO8m7knx4YkFV7ZLkE0kuSPLoJHdN8o/pArrjF71qAAAAYMW44IILcvjhh+e2t71tjj/++Gy//fY58cQTc5vb3GaTdu9+97tzzDHH5OCDD86LX/zitNZy0kkn5bDDDssnPvGJPPShD02SnHvuufnUpz6V3/u938s+++yTK664Im9605ty6KGH5rzzzsu97nWvJElrLY95zGNy5pln5ilPeUrue9/75hOf+EQe9ahHLej5nHvuuTnttNPy1Kc+NU95ylPyxje+MU984hNz3/veNwceeODN+37sYx+bj3/843nKU56SX/qlX8pFF12U1772tfnCF76Qc845JzvssMOC6pjJUIOq01prpyZJVZ2SZPfRla21a9KFWDerqock2ZDk3SOLn5pkdZLf67f5eFXtmOSEqnp5vwwAAADgFv72b/821113Xb74xS/m7ne/e5LkyU9+cu52t7vd3OYXv/hFnva0p+Xoo4/Ov//7v9+8/KlPfWrufe9757nPfW4+97nPJUl+8zd/M0ceeeQm+3jqU5+aAw44IK9+9avzhje8IUly+umn58wzz8zzn//8vPCFL0yS/Omf/mke//jH5ytf+cq8n8/Xv/71fPnLX745EHvc4x6XvffeO29+85vzD//wD0mSd77znTnttNPysY99LA9/+MNv3vbQQw/NIx/5yLztbW/Ln/zJn8y7htkMMqhqrc1nxq9jkny6tXbZyLJHJfnopEDqnUleluTgJKfNv0oAAABgsrO+/j/LXcItHHLQ/nPe5qabbspHPvKRHHHEETeHVEmyxx575PGPf3z+5V/+JUny8Y9/PD/96U/zhCc8IVdcccUmfRx++OF5wxvekHXr1mXNmjVZvXr1zevWr1+fdevWpbWWBzzgATn//PNvXnf66aenqvKsZz1rk/7+/M//fMpT9cb10Ic+9OaQKklud7vb5YADDshFF11087J3vetductd7pL73ve+mzyf+93vftlpp51y5plnbn1B1VxV1d2T3DfJcZNWHZDkzNEFrbXvVtW6fp2gCgAAALiFyy+/POvWrcs97nGPW6wbXfatb30rSXLEEUdM29dPfvKTrFmzJtdff31e+MIX5m1ve1u+973vbdJmv/32u/n+JZdckt133z277rrrtPudj3322ecWy3bZZZdN5p761re+lYsuuih77LHHlH38+Mc/XlANs1kRQVWSo5PckOS9k5bvkuSqKdpf2a+b0YYNG7J+/foFFwcAAAArUWstGzZselLUhg23nGh8uU2ucS7bTPUcJyZT37BhQ2666aYkyRve8IbsvffeU/a12267ZcOGDXnmM5+ZN7zhDXn605+eBz/4wdlll12yatWqvOxlL8u3v/3tTfY5Vd1T1TT6c7btV61aNeWxmNzfxKmIU9lll11mPJ6ttQVlKSspqPpYa23B089X1XHpR2ZN9wYDAAAApnbIQXdd7hIWxR577JE1a9bkwgsvvMW60WV3vWv3fHffffccfvjhM/b5rne9K0984hNvEQKdcMIJmzzeZ599bj6lcHRU1VS1LLa73vWu+cIXvpBDDz00q1atWvL9Tbb597jIquqXkxyY5B1TrL4yyU5TLN+lX3cLrbUTW2trW2trd9ttt8UrFAAAANhibLPNNnnEIx6RD3/4wzef3pd0pwSOzhP1yEc+MjvvvHNe8pKX5LrrrrtFP5dffvnN96ca0XT22WfnnHM2uV5cjjjiiLTW8prXvGaT5dONclpMRx11VK644oop93XTTTdtcprgUlgJI6qOTrI+yalTrPtmurmoblZVd06ypl83o1WrVm0y0RkAAACwUVUty6ibzeXFL35xPvaxj+VhD3tYnvGMZ2S77bbLiSeemH333Tdf+cpXsmrVquy000458cQTc8wxx+SXf/mX8/jHPz577bVXLr300nz6059OknzqU59Kkjz60Y/Ov/3bv+W2t71t7nOf++Qb3/hG3vjGN+aggw7Kz372s5uP5aMf/egcfPDBefGLX5zLLrss97vf/fLxj3883/nOd5JsetxHf07cr6pN1k2Y6fWaWP7EJz4x73//+/OXf/mX+exnP5uDDz442267bb797W/nve99b170ohfl2GOPnfaYVdWCspSVElSd1lr7+RTrPpzkr6rqtq21n/XLjkoXbH16cxUIAAAAbHnuda975eMf/3ie85zn5MUvfnH23HPPPP3pT8/tbne7/NEf/dHN7R73uMfljne8Y17ykpfk1a9+ddatW5fb3/72ecADHrBJu1e/+tXZYYcd8r73vS9vectbcu973zunnHJKTj755Jx11lk3t6uqnHrqqXnOc56TU045Je9+97tz+OGH54wzzsgd73jHJX3OVZVTTjklr33ta3PSSSflIx/5SLbffvvss88+Oeqoo3LooYcu7f4nJtgakqpak2RiuvznJNkxyQv6x2e01tb17X41yX8keUxr7QNT9LNLkguSfC3Jy5LcJckrkryqtXb8bHWsXbu2nXfeeQt7MgAAALBCfeMb38iBBx643GUwIOO8J6rq/Nba2qnWDXVE1Z5J3jNp2cTj/ZJc3N8/OsnV6UZO3UJr7cqqOizJPyU5Ld0VAF+Z5IRFrRYAAACABRtkUNVauzhJjdHuz5P8+SxtLkiytOPSAAAAAFiwlTvjGQAAAABbFEEVAAAAAIMgqAIAAABgEARVAAAAAAyCoAoAAACAQRBUAQAAAPPWWlvuEhiIxXgvCKoAAACAedluu+2yfv365S6DgVi/fn222267BfUhqAIAAADmZc8998yll16adevWGVm1FWutZd26dbn00kuz5557LqivbRepJgAAAGArs+OOOyZJLrvsstxwww3LXA3Labvttsvtbne7m98T8yWoAgAAAOZtxx13XHA4AROc+gcAAADAIAiqAAAAABgEQRUAAAAAgyCoAgAAAGAQBFUAAAAADIKgCgAAAIBBEFQBAAAAMAiCKgAAAAAGQVAFAAAAwCAIqgAAAAAYBEEVAAAAAIMgqAIAAABgEARVAAAAAAyCoAoAAACAQRBUAQAAADAIgioA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\n",
      "text/plain": [
       "<Figure size 1440x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bptk.plot_scenarios(\n",
    "    scenario_managers=[\"smSimpleProject_temp\"],\n",
    "    scenarios=[\"scenario160\"],\n",
    "    kind=\"line\",\n",
    "    equations=[\"deadline\"],\n",
    "    stacked=False,\n",
    "    freq=\"D\", \n",
    "    start_date=\"1/11/2017\",\n",
    "    title=\"Added scenario during runtime\",\n",
    "    x_label=\"Time\",\n",
    "    y_label=\"Number\",\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can also register a scenario manger along with some scenarios directly:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "scenario_manager={\n",
    "    \"smSimpleProject_another_temp\":\n",
    "    {\n",
    "        \"source\": \"simulation_models/sd_simple_project.itmx\",\n",
    "        \"model\": \"simulation_models/sd_simple_project\",\n",
    "        \"scenarios\":{\n",
    "            \"scenario160\":{\n",
    "                \"constants\":{\n",
    "                    \"deadline\" : 160,\n",
    "                    \"effortPerTask\" : 0.1\n",
    "                }\n",
    "            }\n",
    "        }\n",
    "    }\n",
    "}\n",
    "\n",
    "\n",
    "bptk.register_scenario_manager(scenario_manager)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "*** smSimpleProject_temp ***\n",
      "\t scenario160\n",
      "\n",
      "*** smSimpleProject_another_temp ***\n",
      "\t scenario160\n"
     ]
    }
   ],
   "source": [
    "bptk.list_scenarios(scenario_managers=[\"smSimpleProject_temp\",\"smSimpleProject_another_temp\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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qAIAAACgF7Zc7AAAAACAjddtt92WW265JXffffdih8Ii2nrrrbPrrrtmhx12mFM9ElUAAADArNx55535/ve/nwc84AFZunRpqmqxQ2IRtNayatWqfOc738l97nOfbLPNNrOuS9c/AAAAYFZuvvnmLF++PMuWLZOk2oxVVZYtW5Zdd901N99885zqkqgCAAAAZuXOO+/Mfe9738UOg57Ybrvtcuedd86pDokqAAAAYFZ+9rOfZcstjSpEZ8stt8zPfvazOdUhUQUAAADMmi5/jJmP94JEFQAAAAC9IFEFAAAAMANnnnlmqio33HDDBt92VeXEE0+cMpZjjjkme++99waPbT5IVAEAAADQC0Y8AwAAANiEnHbaaVm9evVihzErElUAAAAAm5CtttpqsUOYtV52/auqfavqnVX15aq6t6ouG7f8KVXVJpk+Ma7sw6vqU1W1sqq+W1VvqKotNugOAQAAABulK664Ik984hOzzTbbZM8998xf//Vfp7W2XrlPfepTOfjgg7Pddttl2223zUEHHZTLL798nTI33nhjXvayl2X//ffPtttum+233z6HHnpoPve5z61X3+23357jjjsuO++8c7bffvs897nPzfe+972RYp5ojKqqyu/8zu/k4x//eA488MBss8022XfffXPWWWett/4999yTv/zLv8x+++2X+9znPrn//e+f4447Lj/60Y9G2v5c9LVF1QFJDktyRZKJ0oBfSPKEcfP2TPL+JB8fm1FVOyX5ZJKvJXlWkgcn+bt0CboT5j1qAAAAYJPxta99LYceemi22267nHDCCdl6661z6qmn5r73ve865T7wgQ/kqKOOykEHHZSTTjoprbWceeaZOeSQQ/LJT34yT37yk5MkV155ZS699NI85znPyV577ZVbbrklZ5xxRg4++OBcddVVecQjHpEkaa3l2c9+di655JIce+yxOfDAA/PJT34yz3zmM+e0P1deeWXOO++8HH/88Tn22GNz+umn5wUveEEOPPDA7L///mu2/dznPjcXX3xxjj322Pz8z/98rr/++pxyyin5/Oc/nyuuuCLbbLPNnOKYSl8TVee11s5Nkqo6J8muwwtba7enS2KtUVVPSrI6yQeGZh+fZGmS5wzWubiqtk9yYlW9eTAPAAAAYD1/8Rd/kbvuuitf+MIX8tCHPjRJ8uIXvzgPechD1pS544478nu/93s58sgj8773vW/N/OOPPz6PfOQj8+pXvzqf/exnkyS/+qu/msMPP3ydbRx//PHZb7/9cvLJJ+e0005Lkpx//vm55JJL8trXvjavf/3rkyQvfelLc/TRR+dLX/rSrPfnq1/9ar74xS+uSYg973nPy5577pl3vetd+du//dskydlnn53zzjsvF110UZ72tKetWffggw/OM57xjLz3ve/N7/7u7846hun0MlHVWpvNiF9HJfl0a+27Q/OemeQT4xJSZyf5myQHJTlv9lECAAAA41321f+32CGs5ykH7Dvjde69995ceOGFOeyww9YkqZJk+fLlOfroo/OP//iPSZKLL744P/rRj/L85z8/t9xyyzp1HHrooTnttNOycuXKLFu2LEuXLl2zbNWqVVm5cmVaa3nc4x6Xq6++es2y888/P1WVl7/85evU94pXvGLCrnqjevKTn7wmSZUk97vf/bLffvvl+uuvXzPv/e9/fx70oAflwAMPXGd/HvOYx2SHHXbIJZdcsvklqmaqqh6a5MAkx41btF+SS4ZntNa+VVUrB8skqgAAAID13HzzzVm5cmUe9rCHrbdseN43vvGNJMlhhx02aV0//OEPs2zZstx99915/etfn/e+97359re/vU6ZffbZZ83jG2+8Mbvuumt23nnnSbc7G3vttdd683baaad1xp76xje+keuvvz7Lly+fsI4f/OAHc4phOptEoirJkUnuSfKhcfN3SnLrBOV/PFg2pdWrV2fVqlVzDg4AAAA2Ra21rF69bqeo1avXH2h8sY2PcSbrTLSPY4Opr169Ovfee2+S5LTTTsuee+45YV277LJLVq9enT/8wz/Maaedlt///d/PE5/4xOy0005ZsmRJ/uZv/ibXXXfdOtucKO6JYhr+O936S5YsmfBYjK9vrCviRHbaaacpj2drbU65lE0pUXVRa23Ow89X1XEZtMya7A0GAAAATOwpBzx4sUOYF8uXL8+yZcty7bXXrrdseN6DH9zt76677ppDDz10yjrf//735wUveMF6SaATTzxxned77bXXmi6Fw62qJoplvj34wQ/O5z//+Rx88MFZsmTJgm9vvA2/xXlWVY9Ksn+Sf51g8Y+T7DDB/J0Gy9bTWju1tbaitbZil112mb9AAQAAgI3GFltskac//en5+Mc/vqZ7X9J1CRweJ+oZz3hGdtxxx7zpTW/KXXfdtV49N99885rHE7Vouvzyy3PFFevcLy6HHXZYWmt5+9vfvs78yVo5zacjjjgit9xyy4Tbuvfee9fpJrgQNoUWVUcmWZXk3AmWfT3dWFRrVNUDkywbLJvSkiVL1hnoDAAAAFirqhal1c2GctJJJ+Wiiy7KU5/61LzsZS/LVlttlVNPPTV77713vvSlL2XJkiXZYYcdcuqpp+aoo47Kox71qBx99NHZfffdc9NNN+XTn/50kuTSSy9NkjzrWc/KP//zP2e77bbLox/96FxzzTU5/fTTc8ABB+QnP/nJmmP5rGc9KwcddFBOOumkfPe7381jHvOYXHzxxfnmN7+ZZN3jPvx37HFVrbNszFSv19j8F7zgBfm3f/u3/PEf/3E+85nP5KCDDsqWW26Z6667Lh/60Ifyhje8Icccc8ykx6yq5pRL2VQSVee11n46wbKPJ/mTqtqutfaTwbwj0iW2Pr2hAgQAAAA2Po94xCNy8cUX51WvelVOOumk7Lbbbvn93//93O9+98tLXvKSNeWe97znZY899sib3vSmnHzyyVm5cmXuf//753GPe9w65U4++eRss802+fCHP5x3v/vdeeQjH5lzzjknZ511Vi677LI15aoq5557bl71qlflnHPOyQc+8IEceuihueCCC7LHHnss6D5XVc4555yccsopOfPMM3PhhRdm6623zl577ZUjjjgiBx988MJuf2yArT6pqmVJxobLf1WS7ZO8bvD8gtbaykG5X0zyH0me3Vr7yAT17JTka0m+kuRvkjwoyVuSvK21dsJ0caxYsaJdddVVc9sZAAAA2ERdc8012X///Rc7DHpklPdEVV3dWlsx0bK+tqjaLckHx80be75PkhsGj49Mclu6llPraa39uKoOSfL3Sc5LdwfAtyY5cV6jBQAAAGDOepmoaq3dkKRGKPeKJK+YpszXkixsuzQAAAAA5mzTHfEMAAAAgI2KRBUAAAAAvSBRBQAAAEAvSFQBAAAA0AsSVQAAAAD0gkQVAAAAAL0gUQUAAABAL0hUAQAAANALElUAAAAA9IJEFQAAAAC9IFEFAAAAMANnnnlmqio33HDDBt92VeXEE0+cMpZjjjkme++99waPbT5IVAEAAADQC1sudgAAAAAAzJ/TTjstq1evXuwwZkWiCgAAAGATstVWWy12CLOm6x8AAADAJK644oo88YlPzDbbbJM999wzf/3Xf53W2nrlPvWpT+Xggw/Odtttl2233TYHHXRQLr/88nXK3HjjjXnZy16W/fffP9tuu2223377HHroofnc5z63Xn233357jjvuuOy8887Zfvvt89znPjff+973Rop5ojGqqiq/8zu/k49//OM58MADs80222TffffNWWedtd7699xzT/7yL/8y++23X+5zn/vk/ve/f4477rj86Ec/Gmn7c6FFFQAAAMAEvva1r+XQQw/NdtttlxNOOCFbb711Tj311Nz3vvddp9wHPvCBHHXUUTnooINy0kknpbWWM888M4ccckg++clP5slPfnKS5Morr8yll16a5zznOdlrr71yyy235IwzzsjBBx+cq666Ko94xCOSJK21PPvZz84ll1ySY489NgceeGA++clP5pnPfOac9ufKK6/Meeedl+OPPz7HHntsTj/99LzgBS/IgQcemP3333/Ntp/73Ofm4osvzrHHHpuf//mfz/XXX59TTjkln//853PFFVdkm222mVMcU5GoAgAAAJjAX/zFX+Suu+7KF77whTz0oQ9Nkrz4xS/OQx7ykDVl7rjjjvze7/1ejjzyyLzvfe9bM//444/PIx/5yLz61a/OZz/72STJr/7qr+bwww9fZxvHH3989ttvv5x88sk57bTTkiTnn39+Lrnkkrz2ta/N61//+iTJS1/60hx99NH50pe+NOv9+epXv5ovfvGLaxJiz3ve87LnnnvmXe96V/72b/82SXL22WfnvPPOy0UXXZSnPe1pa9Y9+OCD84xnPCPvfe9787u/+7uzjmE6ElUAAADAvPnudy+fvtAGtvvuT5rxOvfee28uvPDCHHbYYWuSVEmyfPnyHH300fnHf/zHJMnFF1+cH/3oR3n+85+fW265ZZ06Dj300Jx22mlZuXJlli1blqVLl65ZtmrVqqxcuTKttTzucY/L1VdfvWbZ+eefn6rKy1/+8nXqe8UrXjFhV71RPfnJT16TpEqS+93vftlvv/1y/fXXr5n3/ve/Pw960INy4IEHrrM/j3nMY7LDDjvkkksukagCAAAA2JBuvvnmrFy5Mg972MPWWzY87xvf+EaS5LDDDpu0rh/+8IdZtmxZ7r777rz+9a/Pe9/73nz7299ep8w+++yz5vGNN96YXXfdNTvvvPOk252Nvfbaa715O+200zpjT33jG9/I9ddfn+XLl09Yxw9+8IM5xTAdiSoAAACAWVq9enWS5Iwzzsiee+45YZmxpM/LX/7ynHrqqXnpS1+aX/qlX8pOO+2UJUuW5K/+6q9y3XXXLXisW2yxxYTzhweHX716dfbbb7+ccsopE5bdaaedFiS2MRJVAAAAwLyZTTe7Plq+fHmWLVuWa6+9dr1lw/P23XffJMmuu+6aQw89dMo6zz777LzwhS/M29/+9nXmv/a1r13n+V577ZWLLrooP/rRj9ZpVTVRLPNt3333zX/+53/m4IMPzpIlSxZ8e+Nt+C0CAAAA9NwWW2yRZzzjGbngggvWdO9Lui6Bw4OmP+MZz8iOO+6YN77xjbnrrrvWq+fmm29e83jJkiVrWmCNufzyy3PFFVesM+9Xf/VX01rLySefvM78t73tbXPZpZEceeSRueWWWybc1r333rtON8GFoEUVAAAAwATe8IY35BOf+EQOOuigvOxlL8tWW22VU089NXvvvfeau+9tt912OfXUU3PUUUflkY98ZI4++ujsvvvuuemmm/LpT386SXLppZcmSZ71rGfln//5n3Pf+943j370o3PNNdfk9NNPzwEHHJCf/OQna7b767/+6znooIPyhje8ITfddFMe85jH5OKLL843v/nNBd/no48+Oh/60Ifyqle9KpdffnkOOuigbLnllrnuuuvyoQ99KG94wxtyzDHHLNj2JaoAAAAAJvCIRzwiF198cV71qlflpJNOym677Zbf//3fz/3ud7+85CUvWVPuec97XvbYY4+86U1vysknn5yVK1fm/ve/fx73uMetU+7kk0/ONttskw9/+MN597vfnUc+8pE555xzctZZZ+Wyyy5bU66qcu655+ZVr3pVzjnnnHzgAx/IoYcemgsuuCB77LHHgu5zVeWcc87JKaeckjPPPDMXXnhhtt566+y111454ogjcvDBBy/s9ocHzGJdK1asaFddddVihwEAAAC9dM0112T//fdf7DDokVHeE1V1dWttxUTLjFEFAAAAQC9IVAEAAADQCxJVAAAAAPSCRBUAAAAAvSBRBQAAAEAvSFQBAAAA0AsSVQAAAMCstdYWOwR6Yj7eCxJVAAAAwKxstdVWWbVq1WKHQU+sWrUqW2211ZzqkKgCAAAAZmW33XbLTTfdlJUrV2pZtRlrrWXlypW56aabsttuu82p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\n",
      "text/plain": [
       "<Figure size 1440x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bptk.plot_scenarios(\n",
    "    scenario_managers=[\"smSimpleProject_another_temp\",\"smSimpleProject_temp\"],\n",
    "    scenarios=[\"scenario160\"],\n",
    "    kind=\"line\",\n",
    "    equations=[\"deadline\"],\n",
    "    stacked=False,\n",
    "    freq=\"D\", \n",
    "    start_date=\"1/11/2017\",\n",
    "    title=\"Added another scenario during runtime\",\n",
    "    x_label=\"Time\",\n",
    "    y_label=\"Number\",\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Resetting Scenarios\n",
    "After a while of simulating, modifying strategies, constants and generating beautiful plots, you may realize that you want to go back and reset the simulation. For this purpose, you have three methods available:\n",
    "* ``reset_scenario(scenario_manager, scenario)``: This deletes a specific scenario from memory and reloads it from file. Requires the scenario manager's name and the scenario name.\n",
    "* ``reset_all_scenarios()``: Reset all scenarios and re-read from file\n",
    "* ``reset_scenario_cache(scenario_manager, scenario=\"\")``: To optimize the runtime, scenarios cache the results of previous timesteps and previous runs. In some rare cases, this cache may not be flushed upon scenario modification. Hence, this method resets the simulation model's cache.\n",
    "\n",
    "See the example usages below:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "bptk.reset_scenario(scenario_manager=\"smSimpleProjectManagement\",scenario=\"scenario80\")\n",
    "\n",
    "bptk.reset_all_scenarios()\n",
    "\n",
    "bptk.reset_scenario_cache(\"smSimpleProjectManagement\",\"scenario80\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "5721abfe33942d351f7b09905420df100ba8c34b49fc290848df1028bfa2da07"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
